\chapter{工艺流程工具栏}

\section{概念}

\subsection{工序}
工序(Operation)指机器人要执行的路径，以及生成工序路径的制造特征(Mfg)。 

工序的生成方式可以是手动生成，也可以是自动生成。用户可以通过示教功能手动生成路径中的指令。
对于复杂的工艺一般要使用各种工艺生成功能，根据对象的几何特征，通过投影生成工序路径。

工序必须属于一个机器人任务。

\subsection{制造特征}
当要创建工序时，先要创建工序所使用的加工曲线，称之为制造特征(Mfg)。下文中不区分制造特征和加工曲线。

制造特征也是一种曲线，将其单独创建出来是为了将用于加工制造的几何特征与用于设计的几何特征区分开来。

制造特征一般会基于面生成，例如，基于面的等参线生成加工曲线。所以制造特征有相关联的面，后续的投影
需要基于关联面进行。

制造特征有方向，它的方向即为加工曲线的方向。

制造特征不属于机器人任务。

\subsection{投影}
投影(Projection)是决定制造特征上目标点(Target)的位置分布以及方向的过程。投影生成的目标点即成为机器人
运动指令的目标点。一个工序中包含的制造特征需要经过投影才能生成工艺路径。

对制造特征投影时，以一个或者两个面为基础。同时还需要指定其他各种投影参数。一个制造特征对应的投影面和
投影参数会被保存下来，以便重复投影使用。

\subsection{路径}
路径(Path)由运动指令和动作指令构成。路径是工序中的制造特征投影的结果，路径对应的程序可驱动机器人的运动和动作。

路径由手工创建或者对制造特征进行投影创建。路径在创建之后，可加入路径编辑器进行配置调整。

路径只存在于工序中，不能独立存在。


\section{创建带有空路径的通用工序}
创建一个通用工序，带有一个空路径，用于后续插入示教指令。

\subsection{创建于任务}
选择要创建通用工序的机器人任务。

\subsection{父工序}
激活输入框之后，可在工序树中选择父工序。父工序只能是ContinuousCompound类型的工序。

\subsection{工序名称}
指定要创建的工序名称。

\subsection{创建}
创建工序。


\section{基于曲线制造特征创建连续工序}
从曲线制造特征创建连续工序。这些曲线制造特征往往是由已存在的独立曲线创建得到。直接从曲线制造特征创建
的连续工序没有相关联的投影曲面。在投影时需要设置每个连续工序对应的投影曲面。

每个曲线制造特征会创建一个对应的连续工序(ContinuousMfgOperation)。此外，会创建一个连续复合工序
(ContinuousCompoundOperation)，用于包含所有的连续工序。连续工序之间的顺序为选择的曲线制造特征的顺
序。

\subsection{在任务中}
选择创建的工序所属的机器人任务。

\subsection{工序名称}
指定要创建的工序名称。

\subsection{选择制造特征}
激活输入框之后，从数据面板的制造特征列表中或3D视图中选择要创建工序的制造特征。

\subsection{创建}
创建一个连续复合工序，包含对应于选中的制造特征的连续工序。

此时连续工序还没有对应的路径。还需要经过投影才能生成路径。


\section{从曲线创建制造特征}
从独立存在的曲线或面的边线创建连续制造特征。连续制造特征的方向即为曲线或边线的方向。

\subsection{选择边}
激活输入框之后，可以在3D视图中选择边。

\subsubsection{自动延伸}
选中自动延伸之后，选择的边会自动扩展选择与它相切的边。

角度：指定相切判定的角度范围。若相邻边的切线与选中边的切线夹角小于指定的角度，则判定为相切。

\subsection{列表}
显示选中的边的列表。选中列表项时，列表项右边的按钮可反转制造特征的方向，以及从列表项中删除边。

\subsection{关联到零件}
将制造特征与一个零件或装配体关联起来，制造特征将跟随零件移动。

当从零件的边创建了制造特征之后，制造特征与边成为独立的实体。零件移动之后，制造特征不会跟随移动。
制造特征与零件关联之后，制造特征将跟随零件移动，从而可以保持它们之间的相对位置。

\subsection{运动模式}
运动模式设置提供一种批量修改制造特征方向的功能。

当选中了一组（平行）曲线之后，将运动模式设置为往复，系统将制造特征方向修改为往复运动模式，即将相隔的
制造特征的方向设置为与原始边方向相反。

运动模式设置为单向可将制造特征方向恢复成原始的边方向。

\subsection{创建}
将列表中的每条边创建一个连续制造特征。创建的制造特征显示在数据面板的制造特征列表里。


\section{反转制造特征方向}
反转已创建的连续制造特征的方向。制造特征的方向影响投影之后生成的目标点的顺序，即机器人路径运动方向。

\subsection{选择制造特征}
激活输入框之后，在3D视图中或数据面板的制造特征列表中选择要反转方向的制造特征。

\subsection{反转}
反转选中的制造特征的方向。

%====%

\section{基于边线创建连续制造特征和工序}
通过选择面的边线，创建连续制造特征和工序。

\subsection{在任务中创建}
选择要创建工序的机器人任务。

\subsection{工序名称}
指定要创建的工序名称。

\subsection{选择边}
激活输入框之后，可在3D视图中选择模型边线。

鼠标放置在面上，会高亮距离光标最近的边线。点击鼠标，将高亮的边线添加至边线列表中。基于边线创建的连续
制造特征会关联添加边线时鼠标所指的面，对制造特征的投影以该面为基础。通常，一个边线会有2个面相邻。当
从不同的面选中该边线时，投影就会基于不同的面。这一点需要在选择边线时注意。

\subsection{选择模式}
\subsubsection{选择单个边线}
每次只选择鼠标点击的边线。

\subsubsection{自动选择相切边线}
自动将相切的相邻边线添加到选择列表。

当相邻边线的切线之间的夹角小于设置的角度值时，系统认为边线相切，自动选择相邻边线。

\subsection{列表}
显示已选中的边线。

点击列表项，会在3D视图中显示边线所关联的面的法线方向。

\subsection{创建}
点击创建按钮为每条边线创建一个对应的连续制造特征。为每个连续制造特征创建一个对应的连续工序。另外会创
建一个复合连续工序，包含所有的连续工序。

工序要经过投影才能生成机器人路径。

%====%

\section{单面工序}
使用等参线覆盖一个面，生成相应的加工曲线和工序。生成的工序要经过投影才能生成机器人路径。

\subsection{任务}
选择要创建工序的机器人任务。

\subsection{选择面}
激活输入框，从3D视图中选择要生成覆盖工序的面。

\subsection{曲线方向与顺序}
\subsubsection{方向}
指定生成U或者V方向的等参线。
\begin{itemize}
    \item +U: 生成U方向等参线，曲线方向沿U参数增加的方向。
    \item -U: 生成U方向等参线，曲线方向沿U参数减小的方向。
    \item +V: 生成V方向等参线，曲线方向沿V参数增加的方向。
    \item -V: 生成V方向等参线，曲线方向沿V参数减小的方向。
\end{itemize}

\subsubsection{顺序}
指定生成的等参线对应的参数的取值顺序。

\begin{itemize}
    \item +U: 生成V方向的等参线，对应的U参数的取值从小到大。
    \item -U: 生成V方向的等参线，对应的U参数的取值从大到小。
    \item +V: 生成U方向的等参线，对应的V参数的取值从小到大。
    \item -V: 生成U方向的等参线，对应的V参数的取值从大到小。
\end{itemize}

\subsection{修剪与延伸}
设置生成的曲线的位置和长度。

\subsubsection{等距偏移}
以距离的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点与原始起点之间的距离。
    \item 收刀点: 设置曲线的终点与原始终点之间的距离。
    \item 起始工步: 设置首条曲线与面边界之间的距离。
    \item 终止工步: 设置末条曲线与面边界之间的距离。
\end{itemize}

\subsubsection{比例延伸}
以原始距离百分比的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点相对于原始起点的位置百分比。
    \item 收刀点: 设置曲线的终点相对于原始起点的位置百分比。
    \item 起始工步: 设置首条曲线相对于面边界的位置百分比。
    \item 终止工步: 设置末条曲线相对于面边界的位置百分比。
\end{itemize}

\subsection{驱动设置}
设置生成多条曲线的方式。

\subsubsection{步距模式}
\begin{itemize}
    \item 等距: 指定等参线之间的距离。
    \item 次数: 指定等参线的数量。
\end{itemize}

\subsubsection{运动模式}
\begin{itemize}
    \item 单向：生成的曲线方向一致
    \item 往复: 生成的曲线方向交错
\end{itemize}

\subsection{创建}
基于以上参数设置生成曲线制造特征以及对应的工序。所有工序包含在一个复合连续工序里。工序要投影之后才能
生成机器人路径。

%====%
\section{连续面工序}

用连续的等参线覆盖多个连续的面，生成相应的加工曲线和工序。生成的工序要经过投影才能生成机器人路径。曲
线所在的面自动关联至加工曲线，作为投影面。

\subsection{任务}
选择要创建工序的机器人任务。

\subsection{选择面}
激活输入框，在3D视图中用鼠标选择要加工的面。

\subsubsection{选择模式}
\begin{itemize}
    \item 单独选择面：每次选择一个面
    \item 自动选择相邻面：当选择一个面之后，系统会自动选择相邻的面。延伸方向设置沿着U或者V参数的方向选择相邻面。
    \item 自动选择相切面：当选择一个面之后，系统会自动选择相切的面。
\end{itemize}

选中的面会显示在列表中。

\subsection{等参线类型}
\begin{itemize}
    \item U: 沿着U参数变化的方向生成等参线。
    \item V: 沿着V参数变化的方向生成等参线。
\end{itemize}

这里选择的等参线类型需要和连续面扩展的方向一致。如果选择的是U等参线，那么连续面应该是沿着U参数的方向
扩展出去。面的U等参线能够连接在一起。如果选择的是V等参线，那么连续面应该是沿着V参数的方向扩展出去。
面的V等参线能够连接在一起。

如果选择的等参线类型与连续面的扩展方向不一致，则不会生成等参线。

\subsubsection{反转顺序}
反转生成的等参线的顺序。

\subsubsection{反转方向}
反转生成的等参线的方向。

\subsection{修剪与延伸}
设置生成的曲线的位置和长度。

\subsubsection{等距偏移}
以距离的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点与原始起点之间的距离。
    \item 收刀点: 设置曲线的终点与原始终点之间的距离。
    \item 起始工步: 设置首条曲线与面边界之间的距离。
    \item 终止工步: 设置末条曲线与面边界之间的距离。
\end{itemize}

\subsubsection{比例延伸}
以原始距离百分比的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点相对于原始起点的位置百分比。
    \item 收刀点: 设置曲线的终点相对于原始起点的位置百分比。
    \item 起始工步: 设置首条曲线相对于面边界的位置百分比。
    \item 终止工步: 设置末条曲线相对于面边界的位置百分比。
\end{itemize}

\subsection{驱动设置}
设置生成多条曲线的方式。

\subsubsection{步距模式}
\begin{itemize}
    \item 自适应间距：生成的覆盖直线之间的间距大于设置的最小间距。
    \item 次数: 指定生成的覆盖直线的数量。
\end{itemize}

\subsubsection{运动模式}
\begin{itemize}
    \item 单向：生成的直线方向一致
    \item 往复: 生成的直线方向交错
\end{itemize}

\subsection{合并相连的曲线}
将相连的等参线合并成一条曲线。
%====

\section{径向面工序}

基于引导线创建径向覆盖一个基准面的加工曲线及相关工序。在引导线上采样取点，以这些点为起点，生成基准面
上的垂直于引导线的直线，覆盖基准面。

\subsection{任务}
选择要创建工序的机器人任务。

\subsection{引导线类型}

\begin{itemize}
    \item 内部边界：基于面的内边界进行采样取点，作为径向覆盖曲线的起点。
    \item 相交边：基于基准面和侧面的交线进行采样取点，作为径向覆盖曲线的起点。
\end{itemize}

\subsection{基准面}
点击输入框，在3D视图中选择要覆盖的加工面。

\subsection{侧面集}
当引导线类型为相交边时，需要选择用于计算相交边的侧面。

\subsubsection{选择模式}
\begin{itemize}
    \item 单独选择面：每次选择一个面
    \item 自动选择相邻面：当选择一个面之后，系统会自动选择相邻的面。延伸方向设置沿着U或者V参数的方向选择相邻面。
\end{itemize}

选择了侧面之后，系统会计算基准面和侧面的交线，在这些交线上采样取点，作为径向覆盖曲线的起点。

\subsection{曲线顺序和方向}
反转顺序：反转生成的多条曲线的顺序。

反转方向：反转生成的曲线的方向。

\subsection{修剪与延伸}
设置生成的曲线的位置和长度。

\subsubsection{等距偏移}
以距离的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点与原始起点之间的距离。
    \item 收刀点: 设置曲线的终点与原始终点之间的距离。
    \item 起始工步: 设置首条曲线与面边界之间的距离。
    \item 终止工步: 设置末条曲线与面边界之间的距离。
\end{itemize}

\subsubsection{比例延伸}
以原始距离百分比的方式设置曲线的长度和位置。

\begin{itemize}
    \item 起切点: 设置曲线起点相对于原始起点的位置百分比。
    \item 收刀点: 设置曲线的终点相对于原始起点的位置百分比。
    \item 起始工步: 设置首条曲线相对于面边界的位置百分比。
    \item 终止工步: 设置末条曲线相对于面边界的位置百分比。
\end{itemize}

\subsection{驱动设置}
设置生成多条曲线的方式。

\subsubsection{步距模式}
\begin{itemize}
    \item 自适应间距：生成的覆盖直线之间的间距大于设置的最小间距。
    \item 次数: 指定生成的覆盖直线的数量。
\end{itemize}

\subsubsection{运动模式}
\begin{itemize}
    \item 单向：生成的直线方向一致
    \item 往复: 生成的直线方向交错
\end{itemize}


%====%

\section{基于曲面投影连续工序}
基于面投影连续工序，生成工序的目标点。目标点包含位置和方向信息。目标点的位置位于制造特征曲线上。
目标点的方向基于投影面生成。

投影的对象可以是连续制造特征工序，也可以是复合连续工序。选中一个要进行投影的工序，可以打开投影对话
框。如果之前进行过投影，会自动加载之前的投影参数。如果是第一次对工序进行投影，会加载默认参数。

\subsection{制造特征列表}
列出工序中包含的加工曲线的投影面。

一条加工曲线由一条或者多条边构成。每条边对应一个投影面。如果边没有对应的投影面，则会显示“空缺”。
如果存在空缺的投影面，则无法进行投影。

选中一个投影面，点击右侧选择面按钮，进入选择面对话框。激活选择面输入框，可用鼠标在3D视图中选择要投影
的面。

\subsection{路径对齐参数}
指定投影生成的目标点的方向参数。

在加工曲线上每个点处，存在一个缺省的局部坐标系。局部坐标系的Z轴为该点投影到投影面上的点处的法线方
向。局部坐标系的X轴为加工曲线在该点处的切线方向。局部坐标系的Y轴由X轴和Z轴用右手法则确定。

目标点的方向根据以下参数相对于这个局部坐标系确定。

\begin{itemize}
    \item 工作角$\alpha$：目标点方向围绕当前局部坐标系X轴旋转的角度。
    \item 行进角$\beta$：目标点方向围绕当前局部坐标系Y轴旋转的角度。
    \item 旋转角$\gamma$：目标点方向围绕当前局部坐标系Z轴旋转的角度。
\end{itemize}

目标点的方向由局部坐标系依次围绕着当前自身的X,Y,Z轴旋转以上参数指定的角度得到。具体过程为：首先
根据投影面和加工曲线，生成投影点处的局部坐标系R1。然后将局部坐标系R1围绕着它的X轴旋转工作角$\alpha$，
得到一个新的坐标系R2。然后将R2围绕着它的Y轴旋转行进角$\beta$，得到又一个新的坐标系R3。然后将R3围绕着它
的Z轴旋转旋转角$\gamma$，得到最终目标点的坐标轴形成的坐标系，即得到目标点的方向。

\subsection{位置偏移}
对目标点的位置进行偏移调整。默认的目标点位置以一定的间隔位于加工曲线之上。通过指定偏移参数，可以让生
成的目标点的位置沿着它自身的坐标轴偏移。此处的目标点坐标轴是经过前面角度偏转得到的目标点坐标轴，不是
缺省的局部坐标系的坐标轴。

\begin{itemize}
    \item 法向偏移：指定沿目标点法向轴偏移的距离。
    \item 侧向偏移：指定沿目标点侧向轴偏移的距离。
\end{itemize}

\subsection{目标轴设置}
在通过缺省的局部坐标系旋转形成目标点的坐标系之后，需要将目标点的XYZ 3个轴对应到坐标系的坐标轴上。

在不旋转的情况下，目标点坐标系平行于投影面法向的轴称为法向轴，平行于加工曲线切向的轴称为为运动轴，剩
下的轴称为侧向轴。旋转不改变轴的名称。

通过设置可将目标点的XYZ轴分别对应为法向轴、运动轴、侧向轴。

\subsubsection{运动轴方向模式}

目标点的运动轴平行于加工曲线的切向。它的具体方向可以是顺着加工曲线的切向（形成0度角），也可以是逆着加工曲线的切向
（形成180度角）。

\begin{itemize}
    \item 对齐：目标点的运动轴总是顺着加工曲线的切向。
    \item 交替：目标点的运动轴以间隔工序的方式顺着和逆着加工曲线的切向。即在复合工序中，第一个子工序
    的目标点的运动轴顺着加工曲线的方向，第二个子工序的目标点的运动轴逆着加工曲线的方向。这样可以让往
    复运动的工序中机器人工具的方向保持不变。
\end{itemize}

\subsection{投影参数}

\subsubsection{目标点间距}
指定生成的目标点之间沿加工曲线的距离。

\subsection{运动参数}
在确定了目标点之后，投影会为每个目标点生成一个MoveL运动指令。这里指定运动指令中的其他参数。

\subsubsection{速度}
指定直线运动的速度。vXXX为预设速度常量。XXX为直线运动的速度。

\subsubsection{转角半径}
指定运动中经过目标点时的转角半径。

\subsubsection{WorkObject}
指定使用的工件坐标系。

\subsubsection{工具数据}
指定使用的工具数据。

\subsection{删除非加工曲线工序}
复合工序中有可能包含人工示教或者进刀退刀工序。投影时可删除这些工序。

\subsection{投影}
对工序生成目标点和运动指令。

运动指令的类型为直线运动MoveL.

%====%

\section{基于曲面相交线创建连续制造特征和工序}

选择两组面，基于它们的相交线创建加工曲线和工序。工序需经投影生成机器人路径。生成相交线的两个面自动关
联至加工曲线，作为焊缝投影的基准面和侧壁面。
%====%
\section{基于曲面相交线投影连续工序}

对焊缝工序进行投影。每个加工曲线需指定对应的基准面和侧壁面。
%====%
\section{在两个目标点之间插值目标姿态}

选中首末目标点，将首末目标点之间的目标点方向设置为首末目标点方向的平滑插值方向。形成的效果为首末目标
点的方向不变，它们之间的目标点的方向从首目标点平滑过渡到末目标点。

参与插值的指令必须属于同一个复合工序。

\subsection{参考目标点}
\begin{itemize}
    \item 首目标点：在树中选择包含首目标点的运动指令，或者在3D视图中选择目标点
    \item 末目标点：在树中选择包含末目标点的运动指令，或者在3D视图中选择目标点
\end{itemize}

\subsection{固定轴}
在插值调整目标点方向的时候，可以固定目标点的一个坐标轴不动，使得方向的调整围绕这个固定的轴进行。

\subsection{预览}
对调整效果进行预览。

\subsection{应用}
应用调整效果。

%====%

\section{在两个参考目标点之间插值外部轴位置}

对选定的首末指令之间的指令的外部轴值进行均匀插值。

参与插值的指令必须属于同一个复合工序。

\subsection{参考目标点}
\begin{itemize}
    \item 首目标点：在树中选择包含首目标点的运动指令，或者在3D视图中选择目标点
    \item 末目标点：在树中选择包含末目标点的运动指令，或者在3D视图中选择目标点
\end{itemize}

\subsection{应用}
应用插值。

\section{自动设置选定范围内目标点的配置参数}

